#coding:utf-8

"""
    selenium基本命令: 查找标签(文本)/点击跳转/查看当前页面/关闭页面等
"""

from selenium import webdriver


#创建浏览器对象
driver = webdriver.PhantomJS() #调用环境变量指定的PhantomJS浏览器创建无界面的PhantomJS对象
#driver = webdriver.Chrom()  #默认有界面的Chrome

#如果没有在环境变量治党PhantomJS位置
#driver = webdriver.PhantomJS(executable_path="/usr/local/bin/phantomjs"))

#get方法会一直等到页面被完全加载,然后才会继续程序,通常测试会在则这里选择time.sleep(2)
driver.get("http://www.baidu.com/")

#生成当前页面快照并保存
#driver.save_screenshot("baidu.png")

#获取页面标题
print(driver.title)

#获取指定name标签值的元素,<input type="text" name="user-name" id="passwd-id" />
tj = driver.find_element_by_name("tj_trnews")
#print(tj)
#获取指定元素的文本内容
#print(tj.text)

#获取id标签值
element = driver.find_element_by_id("u")
#print(element)

#获取标签名值
element = driver.find_element_by_tag_name("input")
#print(element)

#获取网页渲染后的源码
html = driver.page_source
#print(html)

#获取当前页面的cookie
print(driver.get_cookies())

# 调用键盘按键操作时需要引入的Keys包
from selenium.webdriver.common.keys import Keys

# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')

# ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')

# 输入框重新输入内容
driver.find_element_by_id("kw").send_keys("itcast")

# 模拟Enter回车键
driver.find_element_by_id("su").send_keys(Keys.RETURN)

# 清除输入框内容
driver.find_element_by_id("kw").clear()

# 生成新的页面快照
#driver.save_screenshot("itcast.png")



#通过xpath来匹配
from lxml import etree
html_obj = etree.HTML(html)
tj = html_obj.xpath("//a[@name='tj_trnews']")[0].text  # "//a[@name='tj_trnews']/@href"
#print(tj)

#通过CSS选择器来实现<div id="food"><span class="dairy">milk</span><span class="dairy aged">cheese</span></div>
#cheese = driver.find_element_by_css_selector("#food span.dairy.aged")

#点击新闻按钮: 查找a标签,并点击
driver.find_element_by_name("tj_trnews").click()
#driver.save_screenshot("baidu1.png")

#输入文本
driver.find_element_by_id("ww").send_keys("APEC")
#driver.save_screenshot("baidu2.png")

#点击搜索按钮: 查找a标签并点击
driver.find_element_by_class_name("btn").click()
#driver.save_screenshot("baidu3.png")

#点击搜索结果中的第一个链接
driver.find_element_by_xpath("//div[@id='1']//a").click()
#driver.save_screenshot("baidu4.png")

#查看标签页句柄列表
handles_list = driver.window_handles
print(handles_list)
#查看当前标签页的url地址
print(driver.current_url)
#切换到指定标签页
driver.switch_to_window(driver.window_handles[1])
print(driver.current_url)

#关闭当前标签页
driver.close()

#关闭浏览器
driver.quit()


#还有一些操作,不想写了.....
